//
// Created by admin on 2024/12/3.
//

#ifndef AVM_RENDER_CURVESAMPLES_H
#define AVM_RENDER_CURVESAMPLES_H

#include <vector>
#include "Point.h"

/**
 * @brief 表示一条曲线上的采样点集合。采样点在类的内部用数组存储，数组下标越小，采样点越靠近曲线头部。
 * 采样点坐标的单位为像素。
 */
class CurveSamples {
public:
    CurveSamples() {}
    CurveSamples(const std::vector<Point> & samples);

    std::vector<Point> getSamples(){ return m_samples;};
    void setSamples(const std::vector<Point> & samples){m_samples = samples;};
    void addSample(const Point & p){ m_samples.push_back(p);}

    int size() const{ return m_samples.size();}
    Point at(int i) const { return m_samples.at(i); }

    void clear() { m_samples.clear();}
private:
    std::vector<Point> m_samples;
};


#endif //AVM_RENDER_CURVESAMPLES_H
